const webpack = require('webpack'); // 引入webpack
const path = require('path'); // 引入webpack中path方法

/*
webpack 基本配置
*/
module.exports = {
  // 入口
  entry: {
    app: [
      'webpack-dev-server/client?http://localhost:8080', //添加热加载地址
      'webpack/hot/dev-server', //添加热加载配置
      './index.js' // 入口文件
    ],
    html: [
      'webpack-dev-server/client?http://localhost:8080', //添加热加载地址
      'webpack/hot/dev-server', //添加热加载配置
      './index2.js' // 入口文件
    ]
  },

  // 打包至外部
  output: {
    publicPath: '/',
    path: 'dist', // 本地打包文件存放的地方
    filename: '[name].js' //打包成的文件名
  },

  // 解决后缀，文件别名
  resolve: {
    extensions: ['', '.css', '.js', '.jsx', '.less'], // 解决文件后缀
    alias: { // 路径别名
      com: path.resolve(__dirname, './src/components')
    }
  },

  // webpack 自带服务器
  devServer: {
    hot: true, // 开启热加载
    stats: { // 阻止打印一大串的内容
      chunks: false
    }
  },

  // 管道 运行方向右到左
  module: {
    loaders: [
      {
        test: /\.jsx?$/, // 匹配文件
        loader: 'babel', // 管道类型。//包名： babel-loader
        exclude: /node_modules/, // 排除此文件
        query: {
          presets: ["es2015", "react"]
        }
      },
      {
        test: /\.css$/,
        loader: 'style!css' // postcss 处理兼容性
      },
      {
        test: /\.less$/,
        loader: 'style!css!less'
      },
      {
        test: /\.(png|jpg|gif)$/,
        loader: 'url',
        query: {
          name: 'img/[name].[ext]'
        }
      }
    ]
  },

  // 插件
  plugins: [
    // 运行webpack内部热加载方法
    new webpack.HotModuleReplacementPlugin()
  ]
}
